﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Drawing;
using Fiuba.Algo3.Titiritero.Vista;
using Fiuba.Algo3.Titiritero;
using LibreriaDeClases;

namespace BattleCity
{
    public class TanqueMirage : TanquePC
    {
        //Atributos

        private IDireccion direccion = null;
        private Point ubicacionEnemigo = new Point();
        //Constructor
        public TanqueMirage()
        {
            this.energia = 100;
            this.Velocidad = 5;
            this.arma = new LanzaCohetes();
            this.nombre = "TanqueMirage";
            this.direccion = new Izquierda();
            TanqueDestruido += new DelegadoTanque(nada);
        }
        public TanqueMirage(Point ubicacion)
        {
            this.Figura = new Rectangulo(ubicacion, 30, 30);
            this.energia = 100;
            this.Velocidad = 7;
            this.arma = new Ametralladora();
            this.nombre = "TanqueMirage";
            this.direccion = new Izquierda();
            TanqueDestruido += new DelegadoTanque(nada);
        }

        //Metodos
        override public int getPuntos()
        {
            return 50;
        }
        protected Point getUbicacionEnemigo()
        {

            ubicacionEnemigo = Base.getBase().Figura.getUbicacion();

            return ubicacionEnemigo;
        }

        override protected IDireccion DireccionAvanzar()
        {
            Point Pos = this.Figura.getUbicacion();

            if (((Pos.X) + 50) < (this.getUbicacionEnemigo().X))
            {

                direccion = new Derecha();
                return direccion;
            if ((this.Figura.getUbicacion().Y) <= (this.getUbicacionEnemigo().Y))
            {
                direccion = new Abajo();
            }
                else direccion = new Derecha();
                return this.direccion;
            }




            if (((Pos.X) - 50) > (this.getUbicacionEnemigo().X))
            {

                direccion = new Izquierda();
                return direccion;
            }

            if (this.Figura.getUbicacion().Y <= (this.getUbicacionEnemigo().Y))
                {
                    direccion = new Abajo();
                
            }

                
                else direccion = new Izquierda();
                return direccion;
            }

            

        override protected IDireccion DireccionRetroceder()
        {
            IDireccion Daux = null;


            if (direccion.EsAbajo())
            {
                return new Arriba();

            }
            else if (direccion.EsArriba())
            {
                return new Abajo();

            }
            else if (direccion.EsIzquierda())
            {
                return new Derecha();

            }
            else if (direccion.EsDerecha())
            {
                return new Izquierda();

            }
            return Daux;


        }

    }
}
    
    
    

